﻿Imports ServiciosAT
Imports Utilitarios

Namespace SIREOS
    Public Class PagoWSR

        Function listarCobros(oOrdenServicioCobro As SireosWSPago.OrdenServicioCobro) As DataTable
            Dim oPagoWS As New SireosWSPago.WSPago
            Dim _listarCobrosRequest As New SireosWSPago.listarCobrosRequest
            Dim _listarCobrosResponse As New SireosWSPago.listarCobrosResponse

            _listarCobrosRequest.ordenServicioCobro = oOrdenServicioCobro
            _listarCobrosRequest.ordenServicioCobro.codOrdenSpecified = True

            _listarCobrosResponse = oPagoWS.listarCobros(_listarCobrosRequest)

            If Not (_listarCobrosResponse.listaObjetoNegocio.ordenServicioCobro Is Nothing) Then
                Dim tot As Integer = _listarCobrosResponse.listaObjetoNegocio.ordenServicioCobro.Count

                Dim dt As New DataTable
                dt.Columns.Add("CodCobro")
                dt.Columns.Add("FecCobro")
                dt.Columns.Add("Cant")
                dt.Columns.Add("Pedido")
                dt.Columns.Add("Monto")

                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_listarCobrosResponse.listaObjetoNegocio.ordenServicioCobro.ElementAt(i).codCobro, _
                                _listarCobrosResponse.listaObjetoNegocio.ordenServicioCobro.ElementAt(i).fecRegistro, _
                                _listarCobrosResponse.listaObjetoNegocio.ordenServicioCobro.ElementAt(i).cantRepuestoSolicitado, _
                                _listarCobrosResponse.listaObjetoNegocio.ordenServicioCobro.ElementAt(i).servicio.dscServicio, _
                                _listarCobrosResponse.listaObjetoNegocio.ordenServicioCobro.ElementAt(i).montoCobro
                        )
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function

        Function registrarPago(oOrdenServicioPago As SireosWSPago.OrdenServicioPago) As SireosWSPago.MensajeInformativo
            Dim oPagoWS As New SireosWSPago.WSPago

            Dim _registrarPagoRequest As New SireosWSPago.registrarPagoRequest
            Dim _registrarPagoResponse As New SireosWSPago.registrarPagoResponse

            _registrarPagoRequest.ordenServicioPago = oOrdenServicioPago
            _registrarPagoRequest.ordenServicioPago.codOrdenSpecified = True
            _registrarPagoRequest.ordenServicioPago.cabModalidadPagoSpecified = True
            _registrarPagoRequest.ordenServicioPago.codModalidadPagoSpecified = True
            _registrarPagoRequest.ordenServicioPago.montoSpecified = True
            _registrarPagoRequest.ordenServicioPago.cabMonedaSpecified = True
            _registrarPagoRequest.ordenServicioPago.codMonedaSpecified = True
            _registrarPagoRequest.ordenServicioPago.cabComprobanteSpecified = True
            _registrarPagoRequest.ordenServicioPago.codComprobanteSpecified = True
            _registrarPagoRequest.ordenServicioPago.usuRegistroSpecified = True

            _registrarPagoResponse = oPagoWS.registrarPago(_registrarPagoRequest)
            Return _registrarPagoResponse.mensajeInformativo

        End Function

        Function listarPagos(oOrdenServicioPago As SireosWSPago.OrdenServicioPago) As DataTable
            Dim oPagoWS As New SireosWSPago.WSPago
            Dim _listarPagosRequest As New SireosWSPago.listarPagosRequest
            Dim _listarPagosResponse As New SireosWSPago.listarPagosResponse

            _listarPagosRequest.ordenServicioPago = oOrdenServicioPago
            _listarPagosRequest.ordenServicioPago.codOrdenSpecified = True

            _listarPagosResponse = oPagoWS.listarPagos(_listarPagosRequest)

            If Not (_listarPagosResponse.listaObjetoNegocio.ordenServicioPago Is Nothing) Then
                Dim tot As Integer = _listarPagosResponse.listaObjetoNegocio.ordenServicioPago.Count

                Dim dt As New DataTable
                dt.Columns.Add("CodPago")
                dt.Columns.Add("FecPago")
                dt.Columns.Add("ModalidadPago")
                dt.Columns.Add("Comprobante")
                dt.Columns.Add("Moneda")
                dt.Columns.Add("NroComprobante")
                dt.Columns.Add("Monto")

                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_listarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).codPago, _
                                _listarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).fecRegistro, _
                                _listarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).modalidadPago, _
                                _listarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).comprobante, _
                                _listarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).moneda, _
                                _listarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).nroComprobante, _
                                _listarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).monto
                        )

                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function

        Function anularPago(oOrdenServicioPago As SireosWSPago.OrdenServicioPago) As SireosWSPago.MensajeInformativo
            Dim oPagoWS As New SireosWSPago.WSPago

            Dim _anularPagoRequest As New SireosWSPago.anularPagoRequest
            Dim _anularPagoResponse As New SireosWSPago.anularPagoResponse

            _anularPagoRequest.ordenServicioPago = oOrdenServicioPago
            _anularPagoRequest.ordenServicioPago.codPagoSpecified = True
            _anularPagoRequest.ordenServicioPago.usuAnulacionSpecified = True

            _anularPagoResponse = oPagoWS.anularPago(_anularPagoRequest)

            Return _anularPagoResponse.mensajeInformativo

        End Function

        Function consultarPagos(oOrdenservicioPago As SireosWSPago.OrdenServicioPago, fechaInicio As String, fechaTermino As String) As DataTable
            Dim oPagoWS As New SireosWSPago.WSPago

            Dim _consultarPagosRequest As New SireosWSPago.consultarPagosRequest
            Dim _consultarPagosResponse As New SireosWSPago.consultarPagosResponse

            _consultarPagosRequest.ordenServicioPago = oOrdenservicioPago
            _consultarPagosRequest.ordenServicioPago.codModalidadPagoSpecified = True
            _consultarPagosRequest.ordenServicioPago.codComprobanteSpecified = True
            _consultarPagosRequest.fechaInicio = fechaInicio
            _consultarPagosRequest.fechaTermino = fechaTermino

            _consultarPagosResponse = oPagoWS.consultarPagos(_consultarPagosRequest)

            If Not (_consultarPagosResponse.listaObjetoNegocio.ordenServicioPago Is Nothing) Then
                Dim tot As Integer = _consultarPagosResponse.listaObjetoNegocio.ordenServicioPago.Count

                Dim dt As New DataTable
                dt.Columns.Add("Fecha")
                dt.Columns.Add("Orden")
                dt.Columns.Add("Cliente")
                dt.Columns.Add("Modalidad")
                dt.Columns.Add("Comprobante")
                dt.Columns.Add("Numero")
                dt.Columns.Add("Monto")

                For i As Integer = 0 To tot - 1
                    dt.Rows.Add(_consultarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).fecRegistro, _
                                _consultarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).codOrden, _
                                _consultarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).ordenServicio.sede.cliente.nomCliente, _
                                _consultarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).modalidadPago, _
                                _consultarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).comprobante, _
                                _consultarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).nroComprobante, _
                                _consultarPagosResponse.listaObjetoNegocio.ordenServicioPago.ElementAt(i).monto
                        )
                Next
                Return dt
            Else
                Return Nothing
            End If
        End Function


        Function anularCobro(oOrdenServicioCobro As SireosWSPago.OrdenServicioCobro) As SireosWSPago.MensajeInformativo
            Dim oPagoWS As New SireosWSPago.WSPago


        End Function

        Function registrarCobro(oOrdenServicioCobro As SireosWSPago.OrdenServicioCobro) As Integer
            Dim oPagoWS As New SireosWSPago.WSPago


        End Function


    End Class
End Namespace